---
title: 升级PXF
---

如果在当前的Greenplum数据库中安装使用PXF，则必须在升级到新版本Greenplum数据库时升级PXF服务。

PXF升级过程描述了如何在Greenplum数据库安装中升级PXF。 此过程使用*PXF.from*来表示当前安装的PXF版本, *PXF.to*表示升级新版本的Greenplum数据库时安装的PXF版本。

大多数PXF安装不需要修改PXF配置文件，并且可以进行无缝升级

**Note**: 从Greenplum Database版本5.12开始，PXF不再需要安装Hadoop客户端。PXF现在捆绑了它所依赖的所有JAR文件，并在运行时加载这些JAR。

PXF升级过程分为两部分。您在升级到Greenplum数据库的新版本之前执行一个过程，之后执行一个过程：

-   [Step 1: PXF Pre-Upgrade Actions](#pxfpre)
-   GPDB升级到一个新的版本
-   [Step 2: Upgrading PXF](#pxfup) GPDB升级到一个新的版本


## <a id="pxfpre"></a>Step 1: PXF Pre-Upgrade Actions

在升级到Greenplum数据库的新版本之前执行此过程：

1. 登录到GPDB master节点

    ``` shell
    $ ssh gpadmin@<gpmaster>
    ```

3. 安装[Stopping PXF](cfginitstart_pxf.html#stop_pxf) 章节描述停止每个segment节点上的PXF

4. **如果你想从GPDB版本5.14或更早的版本开始升级**:

    1. 备份 *PXF.from* 在`$GPHOME/pxf/conf/`目录的配置文件。所有segment主机上的这些文件应该相同，因此您只需要从其中一个主机进行复制。 例如：

        ``` shell
        gpadmin@gpmaster$ mkdir -p /save/pxf-from-conf
        gpadmin@gpmaster$ scp gpadmin@seghost1:/usr/local/greenplum-db/pxf/conf/* /save/pxf-from-conf/
        ```

    2. 请注意您可能已添加到*PXF.from*安装的任何自定义JAR文件的位置。 保存这些JAR文件的副本

6. 升级到新版本的Greenplum数据库，然后参照[Step 2: Upgrading PXF](#pxfup).


## <a id="pxfup"></a>Step 2: Upgrading PXF

升级到新版本的Greenplum数据库后，请执行以下步骤以升级和配置*PXF.to*软件：

1. 登录到GPDB master节点

    ``` shell
    $ ssh gpadmin@<gpmaster>
    ```

2. 按照[Initializing PXF](init_pxf.html)的描述在每个segment主机上初始化PXF。

3. 默认情况下，在Greenplum数据库版本5.5.0及更高版本中启用PXF用户模拟。如果要从较旧的*PXF.from*版本升级，则必须为基础Hadoop服务配置用户模拟。有关说明，请参阅[Configuring User Impersonation and Proxying](pxfuserimpers.html)，包括关闭PXF用户模拟的配置过程。

4. **如果你想从GPDB版本5.14或更早的版本开始升级**:

    1. 如果更新了*PXF.from*安装中的`pxf-env.sh`配置文件，请将这些更改重新应用于`$PXF_CONF/conf/pxf-env.sh`。 例如：

        ``` shell
        gpadmin@gpmaster$ vi $PXF_CONF/conf/pxf-env.sh
           <update the file>
        ```
    2.  同样，如果您在PXF.from安装中更新了`pxf-profiles.xml`配置文件，请将这些更改重新应用到主机上的`$PXF_CONF/conf/pxf-profiles.xml`。

        **Note:** 从Greenplum Database版本5.12开始，PXF类的包名称已更改为使用前缀`org.greenplum.*` 。如果要从较旧的*PXF.from*版本升级并自定义`pxf-profiles.xml`文件，则必须在重新应用时更改对`org.greenplum.pxf.*`的任何`org.apache.hawq.pxf.*`的引用。

    3. 如果更新了*PXF.from*安装中的`pxf-log4j.properties`配置文件，请将这些更改重新应用到主机上的 `$PXF_CONF/conf/pxf-log4j.properties`

    4. 如果在*PXF.from*安装中更新了`pxf-public.classpath`配置文件，请将文件中引用的每个JAR复制到naster主机的`$PXF_CONF/lib`

    5. 如果你将其他JAR文件添加到*PXF.from*中，请将它们复制到master主机上的`$PXF_CONF/lib`
    5. 从Greenplum Database版本 5.15 开始，PXF需要Hadoop配置文件放置在`$PXF_CONF/servers/default`目录中。如果在*PXF.from*安装中配置了PXF Hadoop连接器，请将`/etc/<hadoop_service>/conf`中的Hadoop配置文件复制到Greenplum Database主机上的`$PXF_CONF/servers/default`
    5. 从Greenplum Database版本 5.15 开始，PXF的默认Kerberos keytab文件位置是`$PXF_CONF/keytabs`。如果先前已将PXF配置为安全HDFS 且PXF密钥表文件位于*PXF.from*安装目录中（例如，`$GPHOME/pxf/conf`），请考虑将keytab文件重定位到`$PXF_CONF/keytabs`,或者，更新`$PXF_CONF/conf/pxf-env.sh`文件中的`PXF_KEYTAB`属性设置以引用您的keytab文件。

5. 将PXF配置从master主机同步到每个Greenplum数据库segment主机。 例如：

    ``` shell
    gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
    ```
 
6. 按照[Starting PXF](cfginitstart_pxf.html#start_pxf)章节描述在每个segment主机上启动PXF。

